{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# For a bit of early morning compression fun why not run\n",
    "```\n",
    "pip install IMNN jupyter matplotlib\n",
    "git clone https://github.com/tomcharnock/IMNN-LFI_Taskforce.git\n",
    "cd IMNN-LFI_Taskforce\n",
    "jupyter notebook\n",
    "```\n",
    "\n",
    "or go to\n",
    "\n",
    "```\n",
    "tinyurl.com/LFI-IMNN\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Information maximising neural networks for dimensionality reduction\n",
    "\n",
    "Tom Charnock\n",
    "\n",
    "Institut d'Astrophysique de Paris\n",
    "<br><br><br>\n",
    "Notebook: <a href=\"http://presentations.charnock.fr/IMNN/LFI_Taskforce/Information%20maximising%20neural%20networks%20for%20dimensionality%20reduction.ipynb\" download>presentations.charnock.fr/IMNN/LFI_Taskforce</a>\n",
    "\n",
    "<table style=\"width:100%;\" border=\"0\">\n",
    "    <tr style=\"background-color:white;\"><td>\n",
    "        <img src=\"../figures/SU.png\" alt=\"Sorbonne Université\" style=\"height: 80px;\"/>\n",
    "    </td><td>\n",
    "        <img src=\"../figures/ANR.png\" alt=\"ANR\" style=\"height: 100px;\"/>\n",
    "    </td><td>\n",
    "        <img src=\"../figures/IAP.png\" alt=\"IAP\" style=\"height: 100px;\"/>\n",
    "    </td><td>\n",
    "        <img src=\"../figures/CNRS.png\" alt=\"CNRS\" style=\"height: 100px;\"/>\n",
    "    </td><td>\n",
    "        <img src=\"../figures/Aquila.png\" alt=\"Aquila\" style=\"height: 100px;\"/>\n",
    "    </td></tr>\n",
    "</table>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "```\n",
    "pip install IMNN jupyter matplotlib\n",
    "git clone https://github.com/tomcharnock/IMNN-LFI_Taskforce.git\n",
    "cd IMNN-LFI_Taskforce\n",
    "jupyter notebook\n",
    "```\n",
    "\n",
    "\n",
    "```\n",
    "tinyurl.com/LFI-IMNN\n",
    "```\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "init_cell": true,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import os\n",
    "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' \n",
    "import tensorflow as tf\n",
    "n_train = 10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "init_cell": true,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "def simulator(θ, seed, simulator_args):\n",
    "    if seed is not None:\n",
    "        np.random.seed(seed)\n",
    "    return np.moveaxis(np.random.normal([0 for i in range(θ.shape[0])], np.sqrt(θ[:, 0]), simulator_args[\"input shape\"] + [θ.shape[0]]), -1, 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "init_cell": true,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "def generate_data(n_train, num_sims, num_partial_sims, input_shape, θ, h, seed):\n",
    "    t = simulator(θ = np.tile(θ, [n_train * num_partial_sims, 1]), seed = seed, simulator_args = {\"input shape\": input_shape})\n",
    "    t = np.concatenate([t, simulator(θ = np.tile(θ, [n_train * (num_sims - num_partial_sims), 1]), seed = seed + 1, simulator_args = {\"input shape\": input_shape})])\n",
    "    t_m = simulator(θ = np.tile(θ - np.array(h), [n_train * num_partial_sims, 1]), seed = seed, simulator_args = {\"input shape\": input_shape})\n",
    "    t_p = simulator(θ = np.tile(θ + np.array(h), [n_train * num_partial_sims, 1]), seed = seed, simulator_args = {\"input shape\": input_shape})\n",
    "    t_d = ((t_p - t_m) / (2. * h[0]))[:, np.newaxis, :]\n",
    "    data = {\"data\": t, \"data_d\": t_d}\n",
    "    tt = simulator(θ = np.tile(θ, [num_partial_sims, 1]), seed = seed + 2, simulator_args = {\"input shape\": input_shape})\n",
    "    tt = np.concatenate([tt, simulator(θ = np.tile(θ, [(num_sims - num_partial_sims), 1]), seed = seed + 3, simulator_args = {\"input shape\": input_shape})])\n",
    "    tt_m = simulator(θ = np.tile(θ - np.array(h), [num_partial_sims, 1]), seed = seed + 2, simulator_args = {\"input shape\": input_shape})\n",
    "    tt_p = simulator(θ = np.tile(θ + np.array(h), [num_partial_sims, 1]), seed = seed + 2, simulator_args = {\"input shape\": input_shape})\n",
    "    tt_d = ((tt_p - tt_m) / (2. * h[0]))[:, np.newaxis, :]\n",
    "    data[\"validation_data\"] = tt\n",
    "    data[\"validation_data_d\"] = tt_d\n",
    "    np.random.seed()\n",
    "    return data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "init_cell": true,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "def plot_real_data(data):\n",
    "    fig, ax = plt.subplots(1, 1, figsize = (8, 6))\n",
    "    ax.plot(real_data[0], label = \"observed data\")\n",
    "    ax.legend(frameon = False)\n",
    "    ax.set_xlim([0, 9])\n",
    "    ax.set_xticks([])\n",
    "    ax.set_ylabel(\"${\\\\bf d}$\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "init_cell": true,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "def plot_data(data):\n",
    "    fig, ax = plt.subplots(1, 2, figsize = (12, 6))\n",
    "    ind = np.random.randint(data[\"data_d\"].shape[0])\n",
    "    validation_ind = np.random.randint(data[\"validation_data_d\"].shape[0])\n",
    "    ax[0].plot(data['data'][ind], label = \"training data\")\n",
    "    ax[0].plot(data['validation_data'][validation_ind], label = \"test data\")\n",
    "    ax[0].legend(frameon = False)\n",
    "    ax[0].set_xlim([0, 9])\n",
    "    ax[0].set_xticks([])\n",
    "    ax[0].set_ylabel(\"${\\\\bf d}$\")\n",
    "    ax[1].plot(data['data_d'][ind, 0], label = \"training data\")\n",
    "    ax[1].plot(data['validation_data_d'][validation_ind, 0], label = \"test data\")\n",
    "    ax[1].legend(frameon = False)\n",
    "    ax[1].set_xlim([0, 9])\n",
    "    ax[1].set_xticks([])\n",
    "    ax[1].set_ylabel(\"$\\partial{\\\\bf d}/\\partial\\Sigma$\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "init_cell": true,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "def plot_loss(history):\n",
    "    fig, ax = plt.subplots(2, 1, sharex = True, figsize = (8, 8))\n",
    "    plt.subplots_adjust(hspace = 0)\n",
    "    epochs = np.arange(1, len(history[\"det F\"]) + 1)\n",
    "    ax[0].plot(epochs, history[\"loss\"], label = 'loss from training data')\n",
    "    ax[0].plot(epochs, history[\"test loss\"], label = 'loss from validation data')\n",
    "    ax[0].legend(frameon = False)\n",
    "    ax[0].set_xlim([1, epochs[-1]])\n",
    "    ax[0].set_ylabel(r\"$loss$\")\n",
    "    ax[1].plot(epochs, history[\"det F\"], label = r'$|{\\bf F}_{\\alpha\\beta}|$ from training data')\n",
    "    ax[1].plot(epochs, history[\"det test F\"], label = r'$|{\\bf F}_{\\alpha\\beta}|$ from validation data')\n",
    "    ax[1].legend(frameon = False)\n",
    "    ax[1].axhline(5, color = \"black\", linestyle = \"dashed\")\n",
    "    ax[1].set_xlim([1, epochs[-1]])\n",
    "    ax[1].set_ylabel(r\"$|{\\bf F}_{\\alpha\\beta}|$\")\n",
    "    ax[1].set_xlabel(\"Number of epochs\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "init_cell": true,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "def plot_abc(real_data, abc):\n",
    "    Σ_array = np.linspace(0.001, 10, 1000)\n",
    "    dx = (Σ_array[1] - Σ_array[0])\n",
    "\n",
    "    analytic_posterior = np.exp(-0.5 * (np.sum((real_data[0])**2., axis = 0) / Σ_array + real_data.shape[1] * np.log(2. * np.pi * Σ_array)))\n",
    "    analytic_posterior = analytic_posterior / np.sum(analytic_posterior * dx)\n",
    "    \n",
    "    gaussian_approximation, grid = abc.gaussian_approximation(gridsize = 1000)\n",
    "    \n",
    "    ϵ = 1.\n",
    "    accept_indices = np.argwhere(abc.ABC_dict[\"distances\"] < ϵ)[:, 0]\n",
    "    reject_indices = np.argwhere(abc.ABC_dict[\"distances\"] >= ϵ)[:, 0]\n",
    "    \n",
    "    fig, ax = plt.subplots(1, 1, figsize = (10, 6))\n",
    "    plt.subplots_adjust(wspace = 0, hspace = 0)\n",
    "    ax.plot(Σ_array, analytic_posterior, linewidth = 1.5, color = 'C2', label = \"Analytic posterior\")\n",
    "    ax.plot(grid[0], gaussian_approximation, color = \"C1\", label = \"Gaussian approximation\")\n",
    "    ax.hist(abc.ABC_dict[\"parameters\"][accept_indices], np.linspace(0, 10, 100), histtype = u'step', density = True, linewidth = 1.5, color = \"C6\", label = \"ABC posterior\");\n",
    "    ax.hist(abc.PMC_dict[\"parameters\"], np.linspace(0, 10, 100), histtype = u'step', density = True, linewidth = 1.5, color = \"C4\", label = \"PMC posterior\");\n",
    "    ax.legend(frameon = False)\n",
    "    ax.set_xlim([0, 10])\n",
    "    ax.set_xlabel(\"$\\\\Sigma$\")\n",
    "    ax.set_ylabel(\"$\\\\mathcal{P}(\\\\Sigma|{\\\\bf d})$\")\n",
    "    ax.set_yticks([]);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "init_cell": true,
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "def dense(x, nodes, name):\n",
    "    input_shape = x.get_shape().as_list()[-1]\n",
    "    w = tf.get_variable(dtype = tf.float32, shape = (input_shape + 1, nodes), name = name + \"/w\")\n",
    "    y = tf.concat([x, tf.ones([tf.shape(x)[0], 1])], axis = 1)\n",
    "    return tf.matmul(y, w)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Dimensionality reduction"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Data is big!\n",
    "\n",
    "Euclid-like survey \n",
    "\n",
    "<center>(~10$^\\textsf{4}$TB data, ~10$^\\textsf{5}$ images, ~10$^\\textsf{9}$ sources, ~10$^\\textsf{6}$ redshifts)</center>\n",
    "\n",
    "<img style=\"max-width:55%;max-height:55%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/euclid.png\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "# Even the number of summary statistics is $\\sim$10$^\\textsf{4}$!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Some (slightly) smaller simpler data\n",
    "Gaussian data with $n_{\\bf d}=10$ and variance $\\Sigma = 1$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfYAAAFbCAYAAAAnaayMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xd4lFX6PvD7nfROSJsklAQCaZPQQkcICEhQca2rq6yKvey6btFdd3VRd3/qFvVrW2XXtrq2tayooAkgTUnoJZmEABNqMpPe68y8vz9CEDFAysyct9yf6+K6FIaZB0vuPOc57zmSLMsgIiIibTCILoCIiIhch8FORESkIQx2IiIiDWGwExERaQiDnYiISEMY7ERERBrCYCciItIQBjsREZGGMNiJiIg0xFt0AQMRGRkpJyQkiC6DiIjII3bs2FEty3JUX16rymBPSEjA9u3bRZdBRETkEZIkHenra7kUT0REpCEMdiIiIg1hsBMREWkIg52IiEhDGOxEREQawmAnIiLSEAY7ERGRhjDYiYiINITBTkREwhw+fBgmk0l0GT+QnZ193oPQ1q9fj0suueScr9m9ezdWrVrlytLOi8FORESaYrfbRZdwCoOdiIg06+mnn4bJZILJZMKzzz576uftdjuuv/56pKam4qqrrkJraysA4Le//S3S0tKQmZmJX//61wCAqqoqXHnllZg8eTImT56Mb775BgCwfPlyLF26FDNnzsTSpUsxbdo0FBUVnfqMng68paUFy5Ytw5QpUzBhwgR8+umnAIC2tjZce+21SE1NxeWXX462trZe/wxffvklUlJSMHHiRHz88cenfn7r1q2YPn06JkyYgBkzZmD//v3o7OzEI488gvfffx/jx4/H+++/3+vrXE2VZ8UTEdHAPfpZEczljS59z7S4UPzx0vSz/vqOHTvw+uuvo6CgALIsY+rUqZgzZw7Cw8Oxf/9+vPrqq5g5cyaWLVuGl156CTfffDM++eQTlJSUQJIk1NfXAwDuu+8+3H///Zg1axaOHj2Kiy66CMXFxQAAs9mMzZs3IyAgAM888ww++OADPProo6ioqEBFRQWysrLw0EMPYd68eXjttddQX1+PKVOmYP78+XjllVcQGBiI4uJi7N27FxMnTvzBn6G9vR233XYb1q1bh6SkJPz4xz8+9WspKSnYtGkTvL29sWbNGjz00EP46KOP8Nhjj2H79u144YUXAACNjY29vs6V2LGTrsmyjF//dw++LKwQXQqRpm3evBmXX345goKCEBwcjCuuuAKbNm0CAAwfPhwzZ84EANxwww3YvHkzwsLC4O/vj1tuuQUff/wxAgMDAQBr1qzBvffei/Hjx2PJkiVobGxEc3MzAGDJkiUICAgAAFxzzTX48MMPAQAffPABrrrqKgBAbm4unnzySYwfPx7Z2dlob2/H0aNHsXHjRtxwww0AgMzMTGRmZv7gz1BSUoLExESMGTMGkiSdej0ANDQ04Oqrr4bJZML999//vdWC0/X1dYPBjp107VBVCz7ccRyf7j6BN272wcykSNElEbnduTprESRJ+sHfe3t7Y+vWrVi7di0+/PBDvPDCC1i3bh2cTify8/Ph7+//g/cJCgo69dfx8fGIiIjA3r178f777+Pll18G0P3N/EcffYTk5GSX/hkefvhhzJ07F5988gkOHz6M7OzsQb1uMNixk67lW2oAADGh/rjjrR0oKm8QXBGRNl1wwQX43//+h9bWVrS0tOCTTz7BBRdcAAA4evQotmzZAgB45513MGvWLDQ3N6OhoQGLFy/GM888gz179gAAFi5ciOeff/7U++7evfusn/njH/8Yf/nLX9DQ0HCqA7/ooovw/PPPQ5ZlAMCuXbsAALNnz8Y777wDACgsLMTevXt/8H4pKSk4fPgwDh06BAB49913T/1aQ0MD4uPjAQBvvPHGqZ8PCQlBU1PTeV/nSgx20rV8Sw2Mof74753TEeLvjZte34Zjta2iyyLSnIkTJ+Kmm27ClClTMHXqVNx6662YMGECACA5ORkvvvgiUlNTUVdXh7vuugtNTU245JJLkJmZiVmzZuHpp58GADz33HPYvn07MjMzkZaWdqoT781VV12F9957D9dcc82pn3v44YfR1dWFzMxMpKen4+GHHwYA3HXXXWhubkZqaioeeeQRTJo06Qfv5+/vjxUrVuDiiy/GxIkTER0dferXHnjgAfzud7/DhAkTvrcrf+7cuTCbzac2z53tda4k9XzXoiZZWVny+Z4vJDofWZYx+c9rMSspAs9eOwGltiZc9Y9vERnih4/unIHwIF/RJRIRAQAkSdohy3JWX17Ljp1061BVC6qbOzBtVAQAYGxMCF69aTKO17Xhlje3oa3TIbhCIqL+Y7CTbvXM13uCHQAmJwzFc9eOx65j9fjZu7tgdzhFlUdENCAMdtKtgrJaGEP9MTIi8Hs/v8gUi8eWpGNNsQ0Pf1oENY6riEi/+Lgb6ZIsy8i31GDG6IgfPGoDAEunJ8Da2I4Xvz4EY6g/7ps/RkCVRET9x2AnXbJUt6CqqeN7y/Bn+vXCZFgbOvDMmlLEhPrh2ikjPFghEdHAMNhJl3qbr59JkiQ8eWUGqps78Pv/FSIqxA8XpsZ4qkQiogHhjJ10Kd9Si5hQPyScMV8/k4+XAS9dPxHpcaG4552d2Hm0zkMVEhENDIOddKdnvj5tVO/z9TMF+XnjtZsmIybUH7e8sQ2WqmYPVElENDAMdtKdvszXzxQZ7Id/L5sCgyThp69tRWVTuxsrJCIaOAY76U5f5uu9GRkRhNdvnozalk7c/Po2NLV3uaM8IqJBYbCT7hT0cb7em8xhQ/DS9ROx39qEu97eiU47D7AhImVhsJOu9MzXpyb2bb7em+zkaDx5ZSY2H6zGAx/ugdPJA2yISDn4uBvpSll1Cyr7OV/vzVWThsHW2I6/frUfMaH++N3iVBdVSEQ0OAx20pV8Sy0AYNqooYN+r7uzR8Pa0I5XNloQE+qPZbMSB/2eRESDxWAnXcm31CA6xA+JkUGDfi9JkrB8STqqmjrw+BdmRIf64ZLMOBdUSUQ0cJyxk2709/n1vvAySHj22vHIGhmOX76/B1sO1bjkfYmIBorBTrrhqvn6mfx9vPCvn07GyIhA3P7WdpRYG136/kRE/cFgJ91w5Xz9TGGBPnhz2RQE+Xrjxte24kR9m8s/g4ioLxjspBsFZa6br/cmbkgA3lg2Ga2dDtz42lbUt3a65XOIiM6FwU66cOr5dRfO13uTYgzFiqVZOFrTilvf3I72LofbPouIqDcMdtKFwzWtsDV2uGUZ/kzTR0fgmR+Px46jdfj5u7vg4AE2RORBDHbShYGeDz9QF2fG4pFL0pBrtuGPKwshywx3IvIMPsdOupBvqUFUiB9GuWm+3pubZybC2tiOVzZYYAz1x73zxnjss4lIvxjspHnueH69rx68KAWVjR34W24pYkL9cXXWcI9+PhHpD4OdNM+T8/UzGQwSnroyE9XNHfjtx/sQGeKHucnRHq+DiPSDM3bSPE/P18/k623AP26YhNTYENz99k7sOVYvpA4i0gcGO2legaUGkcGena+fKdjPG6/dNBmRIb5Y9sY2HK5uEVYLEWkbg500rXu+Xotpo4Z6fL5+pugQf7x58xTIAH762lZUNXUIrYeItInBTpp2pKYV1sZ2YcvwZxoVFYxXb8xCVVMHlr2xDS0ddtElEZHGMNhJ00TP13szYUQ4Xrx+AswVjbjrPzvR5XCKLomINITBTpqWf3K+PjpK3Hy9N/NSYvDE5RnYWFqFBz/aywNsiMhl+LgbaZaS5uu9uWbycFgb2/F0XimMof54YFGK6JKISAMY7KRZSpuv9+Zn85JgbWzHS+sPISbUHzfOSBBdEhGpHIOdNKugTHnz9TNJkoTHLzOhqqkDyz8rQnSIH3IyYkWXRUQqxhk7aVa+pVaR8/UzeRkkPHftBEwYPgT3vb8bW8tqRZdERCrGYCdN+u7+dWXO188U4OuFV2+cjOHhAbj1zW0otTWJLomIVIrBTpp0tLYVFQ3Knq+fKTzIF28umwJ/Hy/c+NpWlNe3iS6JiFSIwU6a1PP8+nQBF78MxrDwQLxx8xQ0t9tx0+tb0dDaJbokIlIZBjtpUvd83Rejo4JFl9JvaXGheGXpJJRVt+C2t7ajvcshuiQiUhEGO2nOd/N1z9+/7iozkiLx92vGY2tZLX75wW44nDzAhoj6RniwS5I0XJKkryVJMkuSVCRJ0n2iayJ1U+N8vTdLxsXhDxenYtU+Kx7/3MzT6YioT5TwHLsdwK9kWd4pSVIIgB2SJOXJsmwWXRipU4Gl+3Extc3Xe3PrBaNgbWjHvzaXISbUH3dljxZdEhEpnPBgl2W5AkDFyb9ukiSpGEA8AAY7DUj3+fDqnK/35qHFqahs6sBTX5YgJtQPV0wcJrokIlIw4cF+OkmSEgBMAFAgthJSq1Pz9UT1ztfPZDBI+OvVmahu7sADH+5FRLAf5oyNEl0WESmU8Bl7D0mSggF8BOAXsiw39vLrt0uStF2SpO1VVVWeL5BU4VhtG8ob2jFNA8vwp/Pz9sIrSydhTEwI7np7B/YdbxBdEhEplCKCXZIkH3SH+n9kWf64t9fIsrxCluUsWZazoqLYrVDvlHj/uquE+PvgzZsnIzzQFze/sRVHalpEl0RECiQ82KXu9dJXARTLsvy06HpI3fItNYgI8kVStDbm62eKDvXHv2+ZArtTxo2vbUV1c4fokohIYYQHO4CZAJYCmCdJ0u6TPxaLLorUp2e+Pk3Fz6/3xeioYLx642RUNLTjlje2obXTLrokIlIQ4cEuy/JmWZYlWZYzZVkef/LHKtF1kfpodb7em0kjw/HCTyZi34kG3POfnehyOEWXREQKITzYiVwlXwX3r7vSgrQY/OlHGfh6fxV+/8k+HmBDRAAU9rgb0WBofb7em59MHQFrYzueW3sAMaH++NXCZNElEZFg7NhJE2RZRoGlVjX3r7vS/fPH4JqsYXh+3UEcrGwWXQ4RCcZgJ004XteGE/VtulmGP50kSfjlgu5O/cvCCsHVEJFoDHbShC0afn69L4xh/pg4YghW7bOKLoWIBGOwkybkW2owNMgXY3Q0Xz/T4oxYmCsacbSmVXQpRCQQg51Ur2e+Pk2H8/XTXZRuBACs5nI8ka4x2En19DxfP93woYHIiA/D6kIuxxPpGYOdVE/L58P3V06GEbuP1aO8vk10KUQkCIOdVC/fUqv7+XqPHFMsAOBLdu1EusVgJ9Xrvn9d3/P1HomRQUgxhjDYiXSMwU6qdqy2lfP1M+SYYrHtSC0qm9pFl0JEAjDYSdU4X/+hnAwjZBn4qsgmuhQiEoDBTqrG+foPjYkOxqioIJ5CR6RTDHZStZ75usHA+XoPSZKw2BSLfEstals6RZdDRB7GYCfV4nz97BaZjHA4ZeSZuYmOSG8Y7KRaBWW1AICpo4YKrkR50uNCMXxoAA+rIdIhBjupVr6lBuGBPhgbHSK6FMXpWY7/5mA1Gtq6RJdDRB7EYCfV6p6vR3C+fhaLTEZ0OWSsLebueCI9YbCTKh2rbcXxujZM4zL8WY0bNgSxYf5cjifSGQY7qVLPfH3aaG6cOxuDQcJF6UZsKK1Cc4dddDlE5CEMdlIlztf7ZnFGLDrtTnxdUim6FCLyEAY7qRLn630zaWQ4IoP9eHY8kY4w2El1jtdxvt5XXgYJF6XH4Ov9lWjrdIguh4g8gMFOqlNg6Xl+nfP1vlicEYvWTgc2lFaJLoWIPIDBTqqTb6nBkEAfJMdwvt4XUxOHIjzQh2fHE+kEg51UJ7+M58P3h7eXAQvSYrC2uBIddi7HE2kdg51U5XhdK47V8nz4/srJiEVThx3fHKwWXQoRuRmDnVSlZ77OYO+fmaMjEeLvjdX7uDueSOsY7KQqnK8PjK+3AfNTY5BXbEOXwym6HCJyIwY7qQrn6wOXYzKivrUL+ZYa0aUQecz2w7VobNfXRUgMdlKNE/VtnK8PwuyxUQj09eLZ8aQb2w7X4qqXt+DBD/eKLsWjGOykGgUnO82piQz2gfD38cLclGjkFlnhcMqiyyFyK7vDiYf/VwgAWF1oRYm1UXBFnsNgJ9XIt9QgLMAHKUbO1wdqsSkW1c2d2Ha4VnQpRG71Vv4RlFib8MQVGQjx88Zzaw+ILsljGOykGvmWWs7XByk7OQp+3gaeHU+aVtXUgadzS3HBmEhcO3k4bp6ZgFX79NO1M9hJFU7Ut+FobSvn64MU5OeNOWOj8GWhFU4ux5NGPbG6GO12Bx5dkg5JkrBsVqKuunYGO6lCz3ydwT54ORlGWBvbsetYvehSiFxua1ktPt55ArddMAqjooIBAEMCfXXVtTPYSRU4X3edC1Nj4OMl8ex40hy7w4lHPi1EXJg/7p2X9L1f01PXzmAnVeB83XVC/X0wKykSqwutkGUux5N2/HtL94a5Ry5NQ6Cv9/d+TU9dO4OdFK+c83WXyzHF4nhdG4rKtf0FjvSjsrEdz+SVYvbYKFyUbuz1NXrp2hnspHgFZSefXx81VHAl2rEgLQZeBgmr9nE5nrThidUl6LA7T22Y641eunYGOyle/qFahAX4INUYKroUzQgP8sX0URH4ksvxpAEFlhp8susEbp89ComRQed8rR66dgY7KV5+WQ2mcL7ucotMRliqW1BqaxZdCtGAdTmceOTTIsQPCcA9c5PO+3o9dO0MdlK08vo2HKnhfN0dLko3QpLA5XhStTe/PYz9tu4NcwG+Xn36PVrv2hnspGg98/VpnK+7XFSIHyYnDOUpdKRatsZ2PLvmALKTo7AwLabPv0/rXTuDnRSN83X3yjEZsd/WhENVXI4n9fl/q4rRaXdi+aVn3zB3Nlru2hnspGicr7vXIlP3Y0Hs2klt8i01+HR3Oe6cMwoJ59kw1xstd+0MdlKsigbO190tNiwAE0YMwWqeQkcq0nXyhLn4IQG4K/v8G+bORqtdO4OdFKvA0n216NREztfdKcdkROGJRhyrbRVdClGfvPntYZTamvHHfmyY641Wu3YGOylWvqUGof7eSI3lfN2dckyxAMCunVTBdvKEubnJUVjQjw1zZ6PFrp3BToqVb6nBlMQIeHG+7lbDhwbCFB+K1Zyzkwr8+YtidDllLD/HCXP9ocWuncFOilTR0IbDNa18zM1Dckyx2HW0HhUNbaJLITqrbw9VY+Wectw5ZzRGRvR/w9zZ9HTtz6896LL3FInBTorUM1/nxjnP4O54UrqeE+aGhQfg7uzRLn3vIYG+uGlmAr7YV4H91iaXvrcIDHZSJM7XPWt0VDCSY0K4HE+K9fo3ZThY2Yzll6bD32fgG+bO5pZZiQjWyKydwU6KxPm65y0yGbHtcC2qmjpEl0L0PRUNbXh2zQFcmBKN+S7YMNebnlm7Frp2RQS7JEmvSZJUKUlSoehaSDxrQzvn6wLkZBghy0CumV07KcufvyiG3Snjj5emu/VztNK1KyLYAbwBYJHoIkgZvjsfnvN1T0qOCcGoyCCs3sdgJ+X45mA1Pt9bgbuzR2NERKBbP0srXbsigl2W5Y0AakXXQcqQb6lBCOfrHidJEhaZjNhiqUFdS6focojQae8+YW7E0EDcOce1G+bORgtduyKCneh0+ZZaTE0cyvm6ADmmWDicMvKKbaJLIcLr35ThUFUL/nhpmls2zPVGC127aoJdkqTbJUnaLknS9qqqKtHlkJtYG9pRVt3CZXhBTPGhGBYegNW8o50Eq2how/+tPYD5qdG4MNU9G+bORu1du2qCXZblFbIsZ8mynBUVFSW6HHITztfFkiQJOSYjNh+sRmN7l+hySMf+9EUxHB7YMNcbtXftqgl20gfO18VbZIpFl0PGuuJK0aWQTm0+UI0v9lbg7uwkDB/q3g1zZ6Pmrl0RwS5J0rsAtgBIliTpuCRJt4iuicTgfF28CcOHwBjqj1VcjicBOu1OPLKye8PcHXNGCatDzV27IoJdluXrZFmOlWXZR5blYbIsvyq6JvI8W2P3fH1qIpfhRTIYunfHbyitQkuHXXQ5pDOvbi6DpaoFy5d4bsPc2ai1a1dEsBMB3cvwAOfrSrDIZESH3Yn1+7lRlTynvL4Nz609gAVpMZiX4tkNc71Ra9fOYCfFyLfUIsTPG2lxnK+LNjlhKCKDfbGKd7STB/3pCzOcsoxHLkkTXcopauzaGeykGAWWGkzhfF0RvAwSFqYb8XVJJdq7HKLLIR3YWFqFVfusuHeuuA1zvVFj185gJ0WwNbbDwufXFSXHZERrpwMbS7kcT+7VYXdg+coiJEQE4rbZ4jbMnY3aunYGOykC5+vKM21UBMICfHhHO7ndvzaVwVLdguVL3HMl62CprWtnsJMicL6uPD5eBixMi0FesQ2ddqfockijTtS34fl1B7AwLQbZydGiyzkrNXXtDHZShIIyzteVKCfDiKZ2O745VC26FNKoP31uBgA8rKANc71RU9fOYCfhKhvbYalqwVTev644M5MiEeLnjS95lSu5wYbSKqwuVN6GubNRS9fOYCfh8su6b+zlfF15/Ly9cGFqNHLNVtgdXI4n11H6hrneqKVrZ7CTcPmWmu75Os+HV6RFpljUtXah4OQ3YESu8K9NZSg7uWHOz1t5G+bORg1dO4OdhMu31GBy4lB4e/E/RyWaMzYKAT5eWM3DashFjte14vl1B7Ao3ajoDXO9UUPXzq+kJFTPfH0a5+uKFeDrhXkp0fiy0AaHUxZdDmnA4z0b5i5V9oa5s1F6185gJ6E4X1eHRSYjqps7sONInehSSOW+3l+Jr4ps+Nm8MYgfEiC6nAFRetfOYCehOF9Xh7kp0fD1NnA5ngalvat7w9yoyCDcekGi6HIGRcldO4OdhCrgfF0Vgv28MWdsFL4stMLJ5XgaoH9utOBITavqNsz1RsldO7+akjCVTe04VNWCqYmcr6tBjsmIioZ27DleL7oUUqFjta144euDWJxhxOyxUaLLcQmldu0MdhKmwML5uppcmBoDHy+JZ8fTgDz2uRkGScIfLlbnhrneKLVrZ7CTMPmWGgT7eSOd58OrQliAD2YmRWJVYQVkmcvx1Hdfl1Qiz2zDzy5MQpxKN8ydjRK7dgY7CZNvqcHkhHDO11Ukx2TEsdo2FJU3ii6FVKK9y4HlnxVhVFQQbp2ljhPm+kOJXTu/ogpQ39qJX7y3C8UV+v3i2DNf5zK8uixIM8LLwOV46rsVJzfMPbokHb7e2owcpXXt2vynrHCf763A/3aX47Z/b0ddS6focoTgfF2dhgb5YmriUC7HU58cq23Fi18fxMUZsbhgjDY2zPVGaV07g12AXLMNkcG+qGzqwL3v7tTl5Rqcr6tXTkYsLFUtOFDZLLoUUrhHPzPDyyDhD5ekii7F7ZTUtTPYPayxvQtbDlXjionD8OcfmfDNwRo8ubpEdFkeV1BWy/m6Sl2UHgNJAlbzKlc6h7XFNqwptuHnF45BbJi2Nsz1RkldO7+qetiG/VXocshYkBaDq7OG48bpI/GvzWX4364TokvzmKqmDhysbMZULsOrUnSIP7JGhvMUOjqrng1zo6OCsGymuk+Y6w+ldO0Mdg/LNdsQEeSLiSPCAQB/uCQNUxKH4sGP9qLwRIPg6jyjoKwGAOfrapZjikWJtQll1S2iSyEFennDIRyrbcNjl5k0u2GuN0rp2vXzT1wBOu1OrC+pxPzUGHgZJACAj5cBL10/ERFBvrjjrR2oae4QXKX75VtqEOTrBRPn66q1yGQEAHbt9ANHa1rx0vpDuCQzFjOTIkWX43FK6NoZ7B6Ub6lBU4cdC9JivvfzkcF+eGVpFqqbO3DvO7vQpfHNdPmWWp4Pr3JxQwIwbvgQPvZGP/DoZ0XwNmjrhLn+6OnaVxWK69r5ldWDcs1WBPh4YdaYH34XmzEsDE9ckYEtlhr8v1XFAqrzjJ75Opfh1W+xyYi9xxtwrLZVdCmkEGvMNqwtqcQv5o+BMcxfdDnC3DIrEUG+3nhunZiuncHuIU6njDXmSsweGwl/n95vNbpi4jAsm5mI1785jI92HPdwhZ7B+bp25JhiAQBfFbFrp+82zCVFB+NmHW2Y682QQF/cNCMBqwTN2s8b7JIk/fRcPzxRpBbsO9EAa2M7FqYZz/m6hxanYPqoCPzuk33Yq8FbtDhf144REYFIiw3Fai7HE4CX1h/C8bo2PLYkHT4cswnt2vvyT/8NAK+f4wf1QZ7ZBi+DhHkp0ed8nbeXAS/8ZAKigv1wx1s7UNWkrc10BZyva8riDCN2HKmDtaFddCkk0JGaFry84RAuHReHGTrcMNeb8CBxXXtfvrr+BsADAN4CUAHgzwCeOPnX77qvNG3JNVsxOSEc4UG+531tRLAfXlk6CXWtnbjnnZ2a2UxX3dyBA5XNmJrIZXitWMTleN2TZRnLVxbBxyDh94u1f8Jcf4jq2s8b7LIs/12W5b8DyAKwXJblR2RZ/gOARwFkuLtALThc3YJSW/N5l+FPZ4oPw1NXZmJrWS3+9LnZjdV5znfnww8VXAm5SlJ0MMZEB/OxNx1bU1yJr/dX4Rfzx+p6w1xvRHXt/VkPjQHwM0mSbpIkaRmAnwGIdU9Z2pJntgHADx5zO5/LxsfjtgsS8eaWI/hg+zF3lOZRp+br8WGiSyEXysmIxdayWlTr4AwG+r62TgeWryzCmOhg3DQzQXQ5iiSia+9PsD+F7g79VQD/AmAC8KQ7itKaXLMVqbGhGD40sN+/98FFKZiZFIE/fFKI3cfUvZku31KDrISh3FijMTkmI5wykFtkE10Kedg/1h/EifruE+b4/3XvRHTtff43Icvy3wCMB3A/gF8AGC/L8tPuKkwrqps7sONIXb+79R7eXga8cN1ERIf64c63dqCySZ2blHrm63zMTXtSjCFIiAjkcrzOHK5uwcsbLLhsfBymj+b/1+fi6a69X99iybK8V5bl507+2OuuorRkXXElnDKwcIDBDnR/x7diaRbq2zpx99s70WlX32Y6zte1S5IkLDLFYsuhGtS3doouhzxAlmUs/6wIvt4GPMQNc+fl6a6daydulmu2In5IwKDvHU+LC8VfrxqH7Uess2pQAAAaRElEQVTq8NjnRS6qznM4X9e2xRlG2J3yqf0kpG25ZhvW76/CL+aPQUwoN8z1hSe7dga7G7V22rHpQDUWpMVAkqRBv9+l4+Jwx5xReDv/KN7betQFFXpOQVkNJnG+rlkZ8WGIHxLAs+N1oK3Tgcc+MyM5JgQ3zkgQXY5qeLJr51dZN9pYWo0Ou3NQy/BneuCiFFwwJhKPfFqEHUfqXPa+7lTd3IFSWzOX4TWsezneiE0HqtHU3iW6HHKjF7/u2TDHE+b6y1NdO/+tuFGe2YZQf29MTnRdoHkZJDx/3QQYw/xx19s7YGtU/ma6rWU983VusNGyxRlGdDqcWFdSKboUcpOy6has2GjBj8bHYSr/f+43T3XtDHY3sTucWFtiw4WpMS7/rnZIoC9W/HQSmjvsuOvtHeiwO1z6/q6Wb6lBoK8XMjhf17QJw8MRE+qH1fu4HK9Fsizjjyu5YW6wPNG1M9jdZPuROtS3drl0Gf50KcZQ/O3qcdh5tB7LVyp7Mx2fX9cHg0HCRelGrC+tRGunXXQ55GJfFdmwsbQK9y8Yi2humBswT3Tt/ErrJrlFNvh6GzB7bJTbPmNxRizuzh6Nd7cew38KjrjtcwaD83V9yTHFor3LifX7q0SXQi7U2mnH45+bkWIMwY3TR4ouR/Xc3bUz2N1AlmXkmq2YlRSJID9vt37WrxYmIzs5CstXFmH74Vq3ftZAcL6uL1MShyIiyJdXuWrMdxvmTLyZ0QXc3bXz35AblFibcLyubcCnzfWHl0HC/107AfFDAnDn2zsVd31mAefruuJlkLAwPQbrim1o71L23g/qG0tVM1ZstOCKCfGY4sKNwHrnzq6dwe4GuUU2SBJwYeq57153lbAAH6z4aRbaOu244+0divqCmm+pxaSR4Zyv60iOKRYtnQ5sOlAtuhQapJ4Nc/7eXvjt4hTR5WiKO7t2frV1g7xiKyaOCEd0iOc2mIyNCcHfrxmPPcfq8cinhZBl2WOffTY1zR3Yb2viMrzOTB8dgbAAH54drwFfFlqx6UA1frlwrEe/numFu7p2BruLnahvQ+GJRo8sw59pkcmIn89Lwgfbj+PtfPGb6Thf1ycfLwPmp8ZgjdmmynsNqFtrpx2Pndwwt3QaN8y5g7u6dga7i+UVdW8actdjbufzi/ljcWFKNB79zIwCS42QGnrkW2oQ4OOFzGGcr+vN4gwjGtvt+PYQl+PVaM+xetz+7x2oaGjH4z/ihjl3ckfXzn9bLpZXbMPoqCCMigoW8vkGg4Rnrh2PERGBuOednSivbxNSB9A9X89K4Hxdj2aNiUSwnzfPjlcRWZax5VANbvhXAS578RvsO9GARy5Jw+QEbphzJ3d07fyK60INrV3It9RiYbpRaB2h/j5YsTQL7V1O3CloMx3n6/rm5+2FeSnRyDXbYHdwOV7JZFnG1yWVuOrlLbjun/kosTbhtzkp+Oa387BsVqLo8nTB1V07g92Fvt5fCYdTFrYMf7qk6GA88+Px2Hu8Ab//xPOb6ThfpxyTEbUtndiqwPMVCHA4ZXyxtwIXP7cZN7+xDRX1bXh0STo2PzgXd84ZjWA3n8FB33F1185gd6FcsxXRIX4YN2yI6FIAAAvSYvCL+WPw0c7jePPbwx797IKyWs7XdS47ORoBPl48O15huhxOfLjjOBY+swH3vLMTbV0O/OWqTKz/zVzcOCMB/j5eokvUJVd27fyWzEXauxxYv78KP5oQD4Nh8Hevu8rP541BUXkjHv+iGMnGUEwf7ZkOuvt8eM7X9SzA1wvZyVH4qsiKR5ekK+r/Cz1q73LgvzuO45UNh3C8rg0pxhA8f90ELM6IhRf/3QjX07W/uP4g9lubkGwMGfB7KeKrriRJiyRJ2i9J0kFJkn4rup6B2HKoBq2dDiGPuZ2LwSDh6WvGIeHkZroTHthMV9vSiRIr5+vU/QhmZVMHdh6tE12KbrV02PHPjRbM/svXePh/hYgK8cOrN2Zh9X0X4NJxcQx1BXFV1y482CVJ8gLwIoAcAGkArpMkKU1sVf2Xa7YiyNcLMzzUEfdHiH/3yXRddifueGu72zfTbS3rfsyOF7/QvJRo+HobsIrL8R7X0NqF/1tzADOfWoc/rypGUnQw3rl1Kj6+awYuTI2BJDHQlcZVs3bhwQ5gCoCDsixbZFnuBPAegMsE19QvTqeMPHMlslOi4eetzPnU6Khg/N9141FU3ojffbzPrZvp8i3d8/WMeGXsNSBxQvx9MHtMJL4qsiriNEQ9qGrqwJOrSzDzqXV4Zk0pJo0Ix8d3z8A7t03DjKRIBrrCuaJrV8KMPR7AsdP+/jiAqYJqGZBdx+pR3dyhiN3w5zIvJQa/nD8Wf88rRXpcKG69YJRbPqdnvu7rrYTvG0m0RaZYrCmuxN7jDRg3nN/sucuJ+jas2HAI7207hk6HExdnxOLu7CSkxYWKLo36wRWzdiUEe59IknQ7gNsBYMSIEYKr+b5csxXeBgnZyZ659GUw7pmbhKLyRjyxugSpsaGYmRTp0vfvma9fOi7Ope9L6rUgNQbeBgmrCisY7G5QVt2Cf6w/iI93ngAAXD4hHndljxZ2SBYN3i2zEvHGt4fx3LoDePEnE/v9+5XQUp0AMPy0vx928ue+R5blFbIsZ8mynBUVFeWx4voiz2zDtFHdF18oncEg4W/XjMOoyCDc+85OHKttden7c75OZwoL9MGMpEh8WcjleFcqsTbiZ+/uwoV/X49Pd5fj+qkjsOGBufjr1eMY6io32Fm7EoJ9G4AxkiQlSpLkC+BaACsF19RnByubYalqwcJ0ZS/Dny7YzxsrfpoFu1PGHW/tQFun6zbTcb5OvckxGXGkphXFFa69nlKPdh2tw61vbsOiZzdhXbENt80ehU0PzsWjl5kQPyRAdHnkIoOZtQsPdlmW7QDuBfAVgGIAH8iyXCS2qr7LM9sAAPNT1RPsAJAYGYTnrpuAYmsjHvxor8s6qXxLDSaN5Hydvm9hWgwMEniV6wDJsoxvD1Xj+n/l4/KXvsX2I3W4f/5YfPPbefhdTiqvVNWgwXTtivjqK8vyKlmWx8qyPFqW5T+Lrqc/cs1WZMSHIU6F3ynPTY7GrxcmY+Wecvxzk2XQ71d36vl1LsPT90UE+2FqYgRW81KYfpFlGWuLbbjyH9/iJ/8sQKmtGQ8tTsHmB+fhvvljMCTQV3SJ5EYD7dpVs3lOiSob27HraD1+tWCs6FIG7O7s0Sgqb8CTJzfTXTBm4PsXCng+PJ1DToYRj3xahIOVTUiKHvipWnrgcMpYXViBF78+hOKKRsQPCcDjl6Xj6qzhPPJVR07fId8fiujY1WpNcSUAYIGK5utnkiQJf71qHMbGhODed3bhaM3AN9PlW2rg72NApkLOyidluSjdCEkCz44/hy6HE//dfgwLntmAe9/ZhQ67A3+7ehzW/yYbS6fzHHc96una+4PBPgi5ZitGDA1Ecoy6u48gP2+8snQSAOD2t7ajtdM+oPfJt9Qga+RQztepVzGh/pg0IhyruBz/A+1dDvx7y2Fk/3U9fvPhXvh5e+HFn0xE3v1zcNWkYbxzQcd6uvb+4H8tA9TcYce3B2uwME0bRzOOjAjC89dNQKmtCb/5sP+b6Thfp75YZDKiuKIRR2paRJeiCM0ddryy4RBmPfU1Hvm0CDGhfnjtpiys+vksXJzJy1mo2y2zEvv1egb7AG3YX4VOh1Nxl74MxuyxUXhwUQq+2FuBlzf0bzMd5+vUF4tMRgDQ/Sa6+tZOPLumFDOfXIcnVpcgxRiCd2+bho/umoF5KdpoFsh1woP6t0mSm+cGKNdsxdAgX0waGS66FJe6ffYoFJY34i9flSA1NqTPp+kVlHG+Tuc3LDwQ44aFYfW+Ctw5Z7Tocjyusqkdr24qw9v5R9DS6cD81BjcOy8J43kiH7kQg30AuhxOrCupxEXpRnhrbPYlSRKeujIDB2xN+Pm7u7Dy3llIiAw67+/Lt9Ty+XXqk0WmWDz1ZQlO1Lfp5kCV43WtWLHRgve3HUOXw4lLMuNw99zRSDHyHHdyPX4VHoACSy2a2u2Kv/RloAJ9vfHPn2bBYJBw+1vb0dJx7s109a2dKLE2Yloil+Hp/HJOLsd/qYPleEtVM3793z3I/ut6vLv1KH40Ph5rf5WN566bwFAnt2GwD0Ce2Qp/H8OgnvlWuuFDA/HCdRNxsLL7C9O5NtMVlNVCloFpCryLnpQnITIIqbGhWL1Pu6fQmcsbcc87O3Hh0xvw2Z5y3DBtJDb8Zi6euioTiX1YASMaDC7F95Msy8g123DBmCgE+Gr7mdJZYyLx0OJU/OmLYry0/hDumZvU6+u+e349zMMVklrlmIx4Zk0pKhvbER2qjeNQy+vb8PnecqzcU47CE40I9vPGnXNG45ZZiYgM9hNdHukIg72fCk80oqKhHb9U8Wlz/XHLrEQUnmjA33L3IzU2BPNSfjh+6Jmv+3lr+xsdcp0ckxFP55XiqyIrlk5PEF3OgNU0d2DVvgp8tqcCWw93PxkyblgY/nBxKq6eNBxhgcq/8ZG0h8HeT3lmKwwScKHKLn0ZKEmS8MQVmThQ2Yz73tuNT++Z+b0rIXvm67+cr49vdMg1xsSEICk6GKv2qS/Ym9q78FWRDSv3lOObg9VwOGWMiQ7GrxaMxaXj4vq02ZTInRjs/ZRrtiErYSiG9vO5QjUL8PXCK0snYckL3+D2t3bgk7tnIMS/uxPhfJ0GKsdkxItfH0RNcwciFL5U3d7lwLqSSqzcXY51+yvRaXdiWHgA7pg9CkvGxyE5JoTPnpNiMNj74WhNK0qsTfjDxamiS/G4YeGBeOEnE7D01a341Qd78PINk2AwSCiw1HK+TgOyyGTE8+sOIs9sw7VTRogu5we6HE5sPlCNz/aUI9dsQ3OHHZHBfvjJlBFYMj4OE4YPYZiTIjHY+yHX3P14zsI0o+BKxJgxOhK/X5yKxz434/l1B3Hf/DHIt9Rg4gjO16n/0mJDMTIiEKsKrYoJdqdTxtbDtVi5pxyr91WgrrULof7euDgjFkvGx2HaqAge80qKx2Dvh1yzDSnGEIyICBRdijA3z0xAYXkDnllTivjwABRbG3E/5+s0AJIkYZHJiFc3laGhtUvYRjNZlrHvRANW7i7H53srYG1sR4CPFxakxeDScXGYPTaS37iSqjDY+6i2pRPbD9ee9ZEvvZAkCf/v8gwcsHU/3w7wfHgauBxTLF7ZYMGaYhuunDTMo599wNaElXvK8dmechyuaYWPl4Q5Y6Px0MWpmJ8ajcB+XpVJpBT8L7eP1hbb4JT1uwx/On+f7s10lz6/Gc0ddowbzvk6Dcy4YWGIC/PH6kKrR4L9WG0rPttbjpW7y1FibYJBAqaPjsBd2aOxKD2Wj6eRJjDY+yjPbENsmD9M8TwGEgDihgTg7Vun4mhtK5cpacC6l+Nj8XbBETR32BHs5/ovSVVNHfji5MExO4/WAwAmjhiCP16ahoszYxEdoo0Dcoh6MNj7oK3TgY0HqnBN1nDugj1NamwoUmP5jQ4NTk6GEa99U4Z1JZVYMi7OJe/Z0NqFL4u6D4759lA1nDKQYgzBA4uScWlmHIYP1e8+GdI+BnsfbDpQhfYuJ5fhidxg0ohwRIX44cvCikEFe2unHWuKu58131hahU6HEyMjAnHP3CQsGReHMTEhLqyaSLkY7H2QZ7YhxN8bU0cNFV0KkeYYDBIWpRvx4Y7jaOt09OsOhk67ExtLq7ByTznyzDa0dTkQE+qHpdNHYsm4OGQOC+MqG+kOg/08HE4Za0sqMS8lGj4au3udSClyTEa8lX8EG0orscgUe87XOpwy8i01WLm7HKsLK9DYbkd4oA8unxiPJePiMDlhKJ81J11jsJ/HjiN1qG3p5DI8kRtNSRyK8EAfrC609hrssixj17F6rNxdji/2VaCqqQNBvl5YmG7EknFxmDUmkt94E53EYD+P3CIrfL0MmJOs3bvXiUTz9jLgonQjPt9bgQ6749STFiXWRqzcXY7P9pbjWG0bfL0NmJschSXj4jEvJVrzVycTDQSD/Rx67l6fkRThlsdwiOg7i0xGvLftGD7Ydgz1rV34bG85Sm3N8DJImJkUifsuHIuF6TEI9eez5kTnwrQ6h1JbM47WtuKOOaNEl0KkeTNGRyLE3xsPf1oEAJicEI7HL0tHTkYsIhV++xuRkjDYzyG3qPvSlwU6uXudSCRfbwP+cmUmjte1YXFmLOKHBIguiUiVGOznkFdsw4QRQxAdypOpiDwhJ+PcO+KJ6Py4jfQsyuvbsPd4AxaksVsnIiL1YLCfxZpiGwBe+kJEROrCYD+LPLMNoyKDkBQdLLoUIiKiPmOw96KhrQtbDtVgQTqX4YmISF0Y7L1Yv78SdqfMZXgiIlIdBnsvcs02RAb7YcLwIaJLISIi6hcG+xk67A6sL6nEgrRoGHiRBBERqQyD/QxbDtWgpdPBx9yIiEiVGOxnyDXbEOjrhRmjI0WXQkRE1G8M9tM4nTLWmG3ITo6Cvw9vjSIiIvVhsJ9mz/F6VDZ1cBmeiIhUi8F+mlyzDV4GCfOSGexERKRODPbT5JltmJo4FGGBvO+ZiIjUicF+kqWqGQcrm7GQy/BERKRiDPaT8szdl74sSOdpc0REpF4M9pNyzTakx4UifkiA6FKIiIgGjMEOoKqpAzuP1vFseCIiUj0GO4C1xTbIMviYGxERqR6DHd3L8MPCA5AaGyK6FCIiokHRfbC3dNix+WA1FqYZIUm89IWIiNRN98G+sbQKnXYnl+GJiEgTdB/suWYbhgT6YHJCuOhSiIiIBk3Xwd7lcGJdSSXmpUTD20vX/yiIiEgjdJ1m28pq0dDWxcfciIhIM3Qd7LlmG/y8DZg9lnevExGRNug22GVZRp7ZhgvGRCLQ11t0OURERC4hNNglSbpakqQiSZKckiRlefKzi8obcaK+jcvwRESkKaI79kIAVwDY6OkPzjPbIEnAvNRoT380ERGR2whdg5ZluRiAkINhcs02ZI0MR2Swn8c/m4iIyF1Ed+xCHKttRXFFIw+lISIizXF7xy5J0hoAvQ2yfy/L8qf9eJ/bAdwOACNGjBhUTafuXud8nYiINMbtwS7L8nwXvc8KACsAICsrSx7Me+WarRgbE4zEyCBXlEZERKQYuluKr2vpxLbDdVyGJyIiTRL9uNvlkiQdBzAdwBeSJH3l7s9cV1IJh1PmY25ERKRJonfFfwLgE09+Zp7ZhphQP2TEh3nyY4mIiDxCV0vx7V0ObCitwoK0GBgMvHudiIi0R1fBvvlANdq6HFyGJyIizdJVsOeZbQjx88a0URGiSyEiInIL3QS7wyljTbEN2SnR8PXWzR+biIh0RjcJt+toHWpaOvmYGxERaZpugj3XbIOPl4Ts5CjRpRAREbmNLoJdlmXkFlkxfXQkQv19RJdDRETkNroI9oOVzThc08pleCIi0jxdBHtuz6UvqQx2IiLSNt0E+7hhYTCG+YsuhYiIyK00H+zWhnbsOVaPhek8lIaIiLRP88GeV9y9DL+Q83UiItIB7Qe72YaEiEAkRQeLLoWIiMjtNB3sje1d2HKoGgvTjZAkXvpCRETap+lg37C/Cl0OmY+5ERGRbmg62HPNNkQE+WLiiHDRpRAREXmEZoO90+7E+pJKzE+NgRfvXiciIp3QbLDnW2rQ1GHnMjwREemKZoM912xFgI8XZo2JFF0KERGRx2gy2J1OGWvMlZg9NhL+Pl6iyyEiIvIYTQb7vhMNsDa2Y2EaT5sjIiJ90WSw55qt8DJImJcSLboUIiIij9JksOeZbZicEI7wIF/RpRAREXmU5oL9cHULSm3NXIYnIiJd0lyw5/Xcvc7H3IiISIc0F+y5ZitSY0MxfGig6FKIiIg8TlPBXt3cge1H6nhFKxER6Zamgn1dcSVkmcvwRESkX5oK9lyzFfFDApAeFyq6FCIiIiE0E+ytnXZsOlCNBWkxvHudiIh0SzPBvrG0Gh12J+frRESka5oJ9lyzFWEBPpicOFR0KURERMJoItjtDifWlVRiXko0fLw08UciIiIaEE2k4LbDdahv7eIyPBER6Z4mgj3PbIOvtwGzx0aJLoWIiEgo1Qe7LMvINVsxKykSQX7eosshIiISSvXBXlzRhON1bVyGJyIiggaCPc9sgyQBF6Yy2ImIiFQf7LlmKyaOCEdUiJ/oUoiIiIRTdbCfqG9DUXkjz4YnIiI6SdXBnldkBQDO14mIiE5SdbDnmm1Iig7GqKhg0aUQEREpgmqDvaG1CwVltVyGJyIiOo1qg33dfhscTpnL8ERERKdRbbDnmW2IDvHDuGFDRJdCRESkGKoMdlkG1u+vwvy0GBgMvHudiIiohyrPYG3usKOj08FleCIiojOosmNvbO9CsJ83po+OEF0KERGRoqgz2Nu6MCc5Cn7eXqJLISIiUhRVBrudu+GJiIh6pcpglwBkJ0eLLoOIiEhxVBnsQX7eCAvwEV0GERGR4qgy2GPD/EWXQEREpEiqDHZ/H26aIyIi6o0qg52IiIh6JzTYJUn6qyRJJZIk7ZUk6RNJkng+LBER0SCI7tjzAJhkWc4EUArgd4LrISIiUjWhwS7Lcq4sy/aTf5sPYJjIeoiIiNROdMd+umUAVosugoiISM3cfgmMJElrABh7+aXfy7L86cnX/B6AHcB/zvE+twO4HQBGjBjhhkqJiIjUz+3BLsvy/HP9uiRJNwG4BMCFsizL53ifFQBWAEBWVtZZX0dERKRnQq9tlSRpEYAHAMyRZblVZC1ERERaIHrG/gKAEAB5kiTtliTpZcH1EBERqZrQjl2W5SSRn09ERKQ1ojt2IiIiciEGOxERkYZI59iIrliSJFUBOCK6DiIiIg8ZKctyVF9eqMpgJyIiot5xKZ6IiEhDGOxEREQawmAnIiLSEAY7ERGRhjDYiYiINITBTkREpCEMdiIiIg1hsBMREWkIg52IiEhD/j+MROnkPM7juQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "real_data = simulator(np.array([[1.]]), \n",
    "                      np.random.randint(int(1e6)), \n",
    "                      {\"input shape\": [10]})\n",
    "plot_real_data(real_data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div style=\"padding-bottom:10cm\"></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Why do we need data reduction?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "# Approximate Bayesian computation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "For LFI (and in particular ABC) we work in the space of data ${\\bf d}$ and model parameters $\\boldsymbol{\\theta}$\n",
    "\n",
    "<img style=\"max-width:60%;max-height:60%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/joint-space.svg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "Posterior is a slice through this space at some given data\n",
    "\n",
    "<img style=\"max-width:65%;max-height:60%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/posterior.svg\"> "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## ABC posterior\n",
    "\n",
    "Simulate the data and accept simulations close to the _true_ data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "<img style=\"max-width:65%;max-height:65%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/ABC.svg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## The curse of dimensionality\n",
    "\n",
    "The higher the dimension of the data, the less likely any simulation will actually look like the _true_ data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "<img style=\"max-width:50%;max-height:50%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/ABC_2D.svg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Inadequate sampling\n",
    "\n",
    "Impossibly large numbers of simulations become necessary to correctly sample the posterior\n",
    "\n",
    "<img style=\"max-width:60%;max-height:60%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/bad_posterior.svg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Methods for dimensionality reduction"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Informative compressed summaries"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "The information inequality provides a natural description of\n",
    "### <center>optimal compressed summaries</center>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "We define optimal statistics as the set of summaries which saturate the information inequality\n",
    "\n",
    "$$Cov\\left[{\\bf x}_\\alpha,{\\bf x}_\\beta\\right] \\ge \\frac{\\partial\\langle{\\bf x}_\\mu\\rangle}{\\partial\\theta_\\alpha} {\\bf F}^{-1}_{\\mu\\nu}\\frac{\\partial\\langle{\\bf x}_\\nu\\rangle}{\\partial\\theta_\\beta}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Fisher information\n",
    "\n",
    "Amount of information some data, ${\\bf d}$, contains about model parameters, $\\boldsymbol{\\theta}$, with likelihood $\\mathcal{L}({\\bf d}|\\boldsymbol{\\theta})$\n",
    " \n",
    "$$\\begin{align*}\n",
    "    {\\bf F}_{\\alpha\\beta} & = - \\left.\\left\\langle\\frac{\\partial^2\\ln\\mathcal{L}({\\bf d}|\\boldsymbol{\\theta})}{\\partial\\theta_\\alpha\\partial\\theta_\\beta}\\right\\rangle\\right|_{\\boldsymbol{\\theta}^\\textrm{fid}}\\\\\n",
    "    & = \\phantom{-}\\left.\\left\\langle\\frac{\\partial\\ln\\mathcal{L}({\\bf d}|\\boldsymbol{\\theta})}{\\partial\\theta_\\alpha}\\frac{\\partial\\ln\\mathcal{L}({\\bf d}|\\boldsymbol{\\theta})}{\\partial\\theta_\\beta}\\right\\rangle\\right|_{\\boldsymbol{\\theta}^\\textrm{fid}}\n",
    "\\end{align*}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "#### Expectation of the square of the score function at some fiducial model parameter values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "##  How to build optimal compressed summaries\n",
    "\n",
    "Start by expanding a generalised log-likelihood about some fiducial parameters, $\\boldsymbol{\\theta}^\\textsf{fid}$\n",
    "$$\\begin{align*}\n",
    "    \\ln\\mathcal{L}({\\bf d}|\\boldsymbol{\\theta})\\phantom{+} =&\\phantom{+} \\ln\\mathcal{L}({\\bf d}|\\boldsymbol{\\theta}^\\textrm{fid})+\\delta\\theta_\\alpha^T\\frac{\\partial\\ln\\mathcal{L}({\\bf d}|\\boldsymbol{\\theta}^\\textrm{fid})}{\\partial\\theta_\\alpha}\\\\\n",
    "    &\\phantom{+}+\\frac{1}{2}\\delta\\theta_\\alpha^T\\frac{\\partial^2\\ln\\mathcal{L}({\\bf d}|\\boldsymbol{\\theta}^\\textrm{fid})}{\\partial\\theta_\\alpha\\partial\\theta_\\beta}\\delta\\theta_\\beta + \\cdots\n",
    "\\end{align*}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "To linear order, the data only couples to the log-likelihood through the score fuction at some fiducial parameters"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Use the score function as a set of summaries\n",
    "\n",
    "$${\\bf x}_\\alpha = \\frac{\\partial\\ln\\mathcal{L}({\\bf d}|\\boldsymbol{\\theta}^\\textrm{fid})} {\\partial\\theta_\\alpha}$$\n",
    "\n",
    "This is a set of _sufficient_* statistics which saturate the information inequality\n",
    "\n",
    "$$Cov\\left[{\\bf x}_\\alpha,{\\bf x}_\\beta\\right] = \\frac{\\partial\\langle{\\bf x}_\\mu\\rangle}{\\partial\\theta_\\alpha}{\\bf F}^{-1}_{\\mu\\nu}\\frac{\\partial\\langle{\\bf x}_\\nu\\rangle}{\\partial\\theta_\\beta}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "Since gradient of the expectation value of the summaries (evaluated at the fiducial parameter values) is\n",
    "\n",
    "$$\\begin{align*}\n",
    "    \\frac{\\partial\\langle{\\bf x}_\\beta\\rangle}{\\partial\\theta_\\alpha}= & \\phantom{=}\\left.\\left\\langle\\frac{\\partial^2\\ln\\mathcal{L}({\\bf d}|\\boldsymbol{\\theta})}{\\partial\\theta_\\alpha\\partial\\theta_\\beta}\\right\\rangle\\right|_{\\boldsymbol{\\theta}^\\textrm{fid}}\\\\\n",
    "   = & \\phantom{=}-{\\bf F}_{\\alpha\\beta}\n",
    "\\end{align*}$$\n",
    "\n",
    "such that\n",
    "\n",
    "$$\\frac{\\partial\\langle{\\bf x}_\\mu\\rangle}{\\partial\\theta_\\alpha}{\\bf F}^{-1}_{\\mu\\nu}\\frac{\\partial\\langle{\\bf x}_\\nu\\rangle}{\\partial\\theta_\\beta} = {\\bf F}_{\\alpha\\beta}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "and the covariance of the summaries is\n",
    "\n",
    "$$\\begin{align*}\n",
    "    Cov\\left[{\\bf x}_\\alpha, {\\bf x}_\\beta\\right] = & \\left.\\left\\langle\\frac{\\partial\\ln\\mathcal{L}({\\bf d}|\\boldsymbol{\\theta})}{\\partial\\theta_\\alpha}\\frac{\\partial\\ln\\mathcal{L}({\\bf d}|\\boldsymbol{\\theta})}{\\partial\\theta_\\beta}\\right\\rangle\\right|_{\\boldsymbol{\\theta}^\\textrm{fid}}\\\\\n",
    "    =& {\\bf F}_{\\alpha\\beta}\n",
    "\\end{align*}$$\n",
    "\n",
    "then ${\\bf x}_\\alpha$ saturate the information inequality\n",
    "\n",
    "$$Cov\\left[{\\bf x}_\\alpha,{\\bf x}_\\beta\\right] = \\frac{\\partial\\langle{\\bf x}_\\mu\\rangle}{\\partial\\theta_\\alpha}{\\bf F}^{-1}_{\\mu\\nu}\\frac{\\partial\\langle{\\bf x}_\\nu\\rangle}{\\partial\\theta_\\beta}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## The score function defines _optimal_ compressed summaries"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Informative compressed summaries\n",
    "\n",
    "**MASSIVE** dimensionality compression\n",
    "\n",
    "$$\\mathbb{R}^{n_{\\bf d}}\\to\\mathbb{R}^{n_\\textrm{params}}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "### Linearly related to a maximum likelihood estimate\n",
    "$$\\hat{\\boldsymbol{\\theta}}_\\alpha = \\boldsymbol{\\theta}^\\textrm{fid}_\\alpha + {\\bf F}^{-1}_{\\alpha\\beta}{\\bf x}_\\beta$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "We just need to know how to take the partial derivative of the log-likelihood\n",
    "\n",
    "$${\\bf x}_\\alpha = \\frac{\\partial\\ln\\mathcal{L}({\\bf d}|\\boldsymbol{\\theta}^\\textrm{fid})}{\\partial\\theta_\\alpha}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Great... but we're at a LIKELIHOOD-FREE inference workshop"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## We can try and approximate the likelihood\n",
    "\n",
    "If the likelihood of our data is Gaussian:\n",
    "\n",
    "<center>this problem is solved with lossless summaries<br>this is MOPED compression</center>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "If our likelihood is known to linear order:\n",
    "\n",
    "<center>this problem is solved with lossless summaries</center>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "If the likelihood of our data is nearly-Gaussian:\n",
    "\n",
    "<center>this problem is basically solved with not-quite-lossless summaries</center>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "If our data has known useful summaries\n",
    "<br>(for example the power spectrum):\n",
    "<br><br>\n",
    "<center>we can compress the data to the useful summaries<br>then compress the summaries using score compression</center>\n",
    "\n",
    "<img style=\"max-width:70%;max-height:70%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/2_stage_compression.svg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Can we be more general than this though?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Yes!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Information maximising neural networks"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Load the (very easy to use) module\n",
    "\n",
    "```python\n",
    "pip install IMNN\n",
    "```\n",
    "or\n",
    "<a href=\"https://github.com/tomcharnock/IMNN\">github.com/tomcharnock/IMNN</a>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [],
   "source": [
    "from IMNN import IMNN"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Non-linear compression function\n",
    "<img style=\"max-width:70%;max-height:70%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/neural_network_IMNN.svg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# So how do we find this _magic_ function?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Find the function which gives Gaussian summaries"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "We find a way to map the data to some summaries $\\mathscr{f}:{\\bf d}\\to{\\bf x}$, where ${\\bf x}$ are described by\n",
    "\n",
    "$$-2\\ln\\mathcal{L}({\\bf x}|\\boldsymbol{\\theta}) = ({\\bf x}-\\mu_\\mathscr{f}(\\boldsymbol{\\theta}))^T{\\bf C}^{-1}_\\mathscr{f}({\\bf x}-\\mu_\\mathscr{f}(\\boldsymbol{\\theta}))$$\n",
    "\n",
    "where $\\mu_\\mathscr{f}(\\boldsymbol{\\theta})$ and ${\\bf C}_\\mathscr{f}$ are the mean and covariance an ensemble of summaries mapped from fiducial simulations."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## This function is a trained neural network"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### <center>optimised to maximise the Fisher information!</center>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "$$\\textsf{Loss} = -\\ln\\det{\\bf F}_{\\alpha\\beta} + \\lambda||{\\bf C}_\\mathscr{f}-\\mathbb{I}||_2$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Fisher information given our _known_ Gaussian likelihood of summaries\n",
    "\n",
    "$${\\bf F}_{\\alpha\\beta} = \\frac{\\partial\\mu_\\mathscr{f}}{\\partial\\theta_\\alpha}^T{\\bf C}_\\mathscr{f}^{-1}\\frac{\\partial\\mu_\\mathscr{f}}{\\partial\\theta_\\beta}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "## Unbiased parameter estimate straight from the IMNN\n",
    "\n",
    "$$\\hat{\\boldsymbol{\\theta}}_\\alpha = \\boldsymbol{\\theta}^\\textrm{fid}_\\alpha + {\\bf F}^{-1}_{\\alpha\\beta}{\\bf C}_\\mathscr{f}^{-1}\\frac{\\partial\\mu_\\mathscr{f}}{\\partial\\theta_\\beta}({\\bf x} - \\mu_\\mathscr{f})$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Training the network"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Build the network to best exploit the data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "Fully connected networks when you don't know better\n",
    "<br>(oddly distributed data)\n",
    "\n",
    "<img style=\"max-width:50%;max-height:50%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/neural_network_IMNN.svg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "Convolutions for translationally invariant data<br>\n",
    "(images or local signals)\n",
    "\n",
    "<img style=\"max-width:80%;max-height:80%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/convolutional_network.svg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "Other specialised architectures<br>\n",
    "(spherical convolutional networks for cosmological maps)\n",
    "\n",
    "<img style=\"max-width:80%;max-height:80%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/spherical_convolutional_network.svg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## We can build the network to work on summaries with unknown likelihoods\n",
    "\n",
    "<img style=\"max-width:100%;max-height:80%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/2_stage_non_linear_compression.svg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Finding that _one_ extra summary..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "We can combine the IMNN with our known and loved summaries to extract just that little bit extra information\n",
    "\n",
    "<img style=\"max-width:80%;max-height:80%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/spherical_convolutional_network_additional.svg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Of course we can still do score compression\n",
    "\n",
    "<img style=\"max-width:80%;max-height:80%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/spherical_convolutional_network_additional_score.svg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Define our network\n",
    "\n",
    "<img style=\"max-width:50%;max-height:50%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/neural_network_IMNN.svg\">"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [],
   "source": [
    "def network(input_tensor):\n",
    "    x = tf.nn.leaky_relu(dense(input_tensor, 128, \"layer_1\"), 0.01)\n",
    "    x = tf.nn.leaky_relu(dense(x, 128, \"layer_2\"), 0.01)\n",
    "    return dense(x, imnn.n_summaries, \"output\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Generate training (and validation) data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "source": [
    "### Massively cheap\n",
    "\n",
    "We only need simulations at the fiducial parameter values!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [],
   "source": [
    "n_s = 1000\n",
    "n_p = 100\n",
    "num_summaries = 1\n",
    "fiducial = [1.]\n",
    "h = [0.1]\n",
    "input_shape = [10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAt4AAAFeCAYAAACyzBgaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzsnXl8lPW1/9/frJOQPWxZIAEF2QkQUERbrRtu1Lq3P7d7a7d7W2+1tdXWCtp7W69V6+213taqXe6t1r2ipRWt4lZNQAjKKohkBhIIZLKRyTaZ7++PZ54QQpZJMvM8z8yc9+uVVybzbAeFMyfnfM45SmuNIAiCIAiCIAiRJcFuAwRBEARBEAQhHpDAWxAEQRAEQRAsQAJvQRAEQRAEQbAACbwFQRAEQRAEwQIk8BYEQRAEQRAEC5DAWxAEQRAEQRAsQAJvQRAEQRAEQbAACbwFQRAEQRAEwQIk8BYEQRAEQRAEC0iy24BIMnbsWF1aWmq3GYIgCMPmgw8+OKy1Hme3HVYiPlsQhGglVJ8d04F3aWkpGzZssNsMQRCEYaOUqrbbBqsRny0IQrQSqs8WqYkgCIIgCIIgWIAE3oIgCIIgCIJgARJ4C4IgCIIgCIIFSOAtCIIgCIIgCBYggbcgCIIgCIIgWIAE3oIgCIIgCIJgARJ4C4IgCIIgCIIFSOAtCIIgCIIgCBYggbfFNDY28vDDD4/o2gsuuIDGxsZBz7nzzjt57bXXRnT/wfjd737HN7/5zUHPWbduHf/4xz/C/mxBEAS7EJ8tCEI4kcDbYgZz4n6/f9Br16xZQ05OzqDn3H333Zx99tkjtm80iBMXBCHWEJ8tCEI4kcDbYm677TY++eQTysrKuPXWW1m3bh2nn346K1asYNasWQBccsklLFq0iNmzZ/PII4/0XFtaWsrhw4fZu3cvM2fO5Ctf+QqzZ8/m3HPPpa2tDYAbbriBZ599tuf8lStXsnDhQubOncuOHTsAOHToEOeccw6zZ8/mxhtvpKSkhMOHDx9n629/+1umT5/OkiVLePfdd3vef+mllzj55JNZsGABZ599NgcPHmTv3r386le/4uc//zllZWW8/fbb/Z4nCIIQTYjPFgQhnCTZbYBSahLwB2ACoIFHtNb/1eccBfwXcAHgA27QWm8c7bPvemkr22qaR3ubY5hVmMXKi2cPePyee+5hy5YtVFVVAUbGYePGjWzZsoUpU6YA8Pjjj5OXl0dbWxuLFy/msssuIz8//5j77Nq1iyeffJLf/OY3XHnllTz33HNcc801xz1v7NixbNy4kYcffpj77ruPRx99lLvuuovPfe5z3H777fztb3/jscceO+662tpaVq5cyQcffEB2djZnnnkmCxYsAOC0007j/fffRynFo48+yr333sv999/P17/+dTIyMvjud78LQENDQ7/nCYIQHSilHgcuAuq01nP6OT6gb1ZKXQ/cETz137XWvx+tPeKzxWcLQrRje+AN+IHvaK03KqUygQ+UUq9qrbf1Oud8YFrw62Tgf4LfY4IlS5b0OHCAX/ziF7zwwgsAeDwedu3adZwTnzJlCmVlZQAsWrSIvXv39nvvSy+9tOec559/HoB33nmn5/7Lly8nNzf3uOsqKio444wzGDduHABXXXUVH3/8MQD79u3jqquuora2ls7OzmNs702o5wk20t4Eb94LZ9wGqZl2WyM4j98BD2EkR/qjX9+slMoDVgLlGAmVD5RSq7XWDRG32ALEZwu2oTW89TOYuQLGz7DbGmEE2B54a61rgdrg6xal1HagCOgdeH8e+IPWWgPvK6VylFIFwWtHzGBZDisZM2ZMz+t169bx2muv8d5775Gens4ZZ5xBe3v7cdekpqb2vE5MTOwpWw50XmJi4pB6xFD51re+xS233MKKFStYt24dq1atGtV5go1sfwneewgK5sO8K+22RnAYWuu3lFKlg5zSr28GzgBe1Vp7AZRSrwLLgSdHY4/47JEhPjuG8O6BN/4Dmmvg4gfttkYYAY7SeAcd/AKgos+hIsDT6+d9wff6u8dXlVIblFIbDh06FAkzR0VmZiYtLS0DHm9qaiI3N5f09HR27NjB+++/H3Ybli1bxtNPPw3A2rVraWg4Pgl18skn8+abb1JfX09XVxfPPPPMMTYWFRn/+X//+6PV475/toHOs5sqTyMHmo7/YIxLPMF/anvfttcOIVoZyDeH7LOdjvhs+/F4fWytabLbDGfQ47PfsdcOYcQ4JvBWSmUAzwHf1lqPWMSntX5Ea12utS43S25OIj8/n2XLljFnzhxuvfXW444vX74cv9/PzJkzue222zjllFPCbsPKlStZu3Ytc+bM4ZlnnmHixIlkZh4rMygoKGDVqlUsXbqU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\n",
      "text/plain": [
       "<Figure size 864x432 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "data = generate_data(n_train, n_s, n_p, input_shape, fiducial, h, np.random.randint(int(1e6)))\n",
    "plot_data(data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "source": [
    "<div style=\"padding-bottom:10cm\"></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Let's build the IMNN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [],
   "source": [
    "imnn = IMNN.IMNN(\n",
    "    {\"number of simulations\": n_s,\n",
    "     \"number of derivative simulations\": n_p,\n",
    "     \"fiducial\": fiducial,\n",
    "     \"number of summaries\": num_summaries,\n",
    "     \"input shape\": input_shape,\n",
    "     \"dtype\": 32})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /Users/charnock/.pyenv/versions/3.6.6/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n",
      "WARNING:tensorflow:From /Users/charnock/.pyenv/versions/3.6.6/lib/python3.6/site-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n"
     ]
    }
   ],
   "source": [
    "imnn.setup(network = network, load_data = data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "#### Pass $n_\\textrm{sims}$ simulations through the network and calculate ${\\bf C}_\\mathscr{f}$\n",
    "\n",
    "<img style=\"max-width:80%;max-height:70%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/covariance.svg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Calculate the derivative of the network outputs with respect to the parameters \n",
    "$$\\frac{\\partial\\mu_\\mathscr{f}}{\\partial\\theta_\\alpha} = \\frac{1}{n_\\textrm{p}}\\sum_{i=1}^{n_\\textrm{p}}\\frac{\\partial{\\bf x}_i}{\\partial{\\bf d}_i}\\frac{\\partial{\\bf d}_i}{\\partial\\theta_\\alpha}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Calculate the Fisher information\n",
    "\n",
    "$${\\bf F}_{\\alpha\\beta} = \\frac{\\partial\\mu_\\mathscr{f}}{\\partial\\theta_\\alpha}^T{\\bf C}_\\mathscr{f}^{-1}\\frac{\\partial\\mu_\\mathscr{f}}{\\partial\\theta_\\beta}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Update the network parameters using the gradient of the loss function\n",
    "\n",
    "$$\\textsf{Loss} = -\\ln\\det{\\bf F}_{\\alpha\\beta} + \\lambda||{\\bf C}_\\mathscr{f}-\\mathbb{I}||_2$$\n",
    "\n",
    "<img style=\"max-width:60%;max-height:60%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/neural_network_IMNN.svg\">\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "# Lather, rince, repeat..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "458b68583e2144c5982634f216926970",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HBox(children=(IntProgress(value=0, description='Updates', max=1000, style=ProgressStyle(description_width='in…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAf8AAAHjCAYAAAAt5RZeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd4VMX6wPHv7GbTCwFC6ITQSyB0kCqgoIiIgtgFC/Z2rwW9Krb706vYO96r0lQQQUV6NZRQkpAAoUNCSCWk92R35/fHhoWYAAETNuX9PE8ed8+ZM+c9qz7vmTlzZpTWGiGEEELUHwZHByCEEEKIK0uSvxBCCFHPSPIXQggh6hlJ/kIIIUQ9I8lfCCGEqGck+QshhBD1jMOTv1LKVSm1UykVpZSKVkq97uiYhBBCiLpMOfo9f6WUAjy01rlKKROwBXhKa73doYEJIYQQdZSTowPQtruP3NKvptI/mXlICCGEqCYOT/4ASikjEA60Bz7XWu+4UPnGjRvrgICAKxGaEEII4XDh4eGntdZ+VVVfjUj+WmsLEKyUagAsVUp111rvO7eMUmo6MB2gdevWhIWFOSBSIYQQ4spTSp2oyvocPuDvXFrrTGAjMLaCfbO11n211n39/Krs5kcIIYSodxye/JVSfqUtfpRSbsA1wEHHRiWEEELUXTWh278ZMKf0ub8BWKS1/sPBMQkhhBB1lsOTv9Z6D9DL0XEIIYQQ9YXDu/2FEEIIcWVJ8hdCCCHqGUn+QgghRD1TK5N/XHq+o0MQQgghaq1amfzNFpn9VwhRt3l6elZLvampqQwYMIBevXqxefPmajkHQGZmJl988cVlHXv99deTmZl5wTKvvvoq69atu6z6L+T777/n8ccfv2CZTZs2sW3btio/95VUO5O/1eroEIQQolZav349QUFB7N69m6FDh5bZZ7FYquw8F0r+ZrP5gseuWLGCBg0aXLDMG2+8wejRoy87vr+jLiR/h7/qdzmk5S+EuFJeXxbN/sTsKq2za3NvZo7vVqmyWmuef/55Vq5ciVKKl19+mSlTppCUlMSUKVPIzs7GbDbz5ZdfctVVV3H//fcTFhaGUor77ruPZ555xl5XZGQkzz//PAUFBYSFhREaGoqfnx8PPfQQ69at4/PPP6eoqIhnn30Ws9lMv379+PLLL3FxcSEgIIDbb7+dlStX4uTkxOzZs3nxxRc5evQozz33HA8//HCZuGfMmMGxY8cIDg7mmmuuYdy4cbzyyiv4+vpy8OBBDh8+zE033cTJkycpLCzkqaeeYvr06QAEBAQQFhZGbm4u1113HUOGDGHbtm20aNGC3377DTc3N6ZOncoNN9zApEmTCAgI4N5772XZsmWUlJTw888/07lzZ1JTU7njjjtITExk0KBBrF27lvDwcBo3blwm1u+++463336bBg0a0LNnT1xcXABYtmwZb731FsXFxTRq1IgFCxZQUFDAV199hdFoZP78+Xz66adkZmaWK+fv7/93/hOpdrWy5W/RmhKLtP6FEHXfkiVLiIyMJCoqinXr1vHcc8+RlJTEDz/8wJgxY+z7goODiYyMJCEhgX379rF3716mTZtWpq7g4GDeeOMNpkyZQmRkJG5ubuTl5TFgwACioqLo27cvU6dOZeHChezdu9d+U3FG69atiYyMZOjQoUydOpXFixezfft2Zs6cWS7ud955h3bt2hEZGcl7770HQEREBB9//DGHDx8G4NtvvyU8PJywsDA++eQT0tLSytVz5MgRHnvsMaKjo2nQoAG//PJLhb9T48aNiYiI4JFHHmHWrFkAvP7664wcOZLo6GgmTZpEXFxcueOSkpKYOXMmW7duZcuWLezfv9++b8iQIWzfvp3du3dz22238e677xIQEMDDDz/MM888Y/8tKipX09XKln9LUsnIK6aJt6ujQxFC1HGVbaFXly1btnD77bdjNBrx9/dn+PDh7Nq1i379+nHfffdRUlLCTTfdRHBwMIGBgRw/fpwnnniCcePGce211160fqPRyC233ALAoUOHaNu2LR07dgTg3nvv5fPPP+fpp58G4MYbbwQgKCiI3NxcvLy88PLywsXFhczMzIt21ffv35+2bdvav3/yyScsXboUgJMnT3LkyBEaNWpU5pi2bdsSHBwMQJ8+fYiNja2w7ptvvtleZsmSJfbf7kz9Y8eOxdfXt9xxO3bsYMSIEZxZM2bKlCn2m5P4+Hh7L0txcXGZ2M9V2XI1Sa1s+TurEsJPZDg6DCGEcJhhw4YREhJCixYtmDp1KnPnzsXX15eoqChGjBjBV199xQMPPHDRelxdXTEajZU655nucIPBYP985vvFnuMDeHh42D9v2rSJdevWERoaSlRUFL169aKwsPC85wTbjcr5znOm3IXKXKonnniCxx9/nL179/L1119XGN+llKtJamXyd8JKyJFUR4chhBDVbujQoSxcuBCLxUJqaiohISH079+fEydO4O/vz4MPPsgDDzxAREQEp0+fxmq1csstt/DWW28RERFxSefq1KkTsbGxHD16FIB58+YxfPjwy4rby8uLnJyc8+7PysrC19cXd3d3Dh48yPbt2y/rPBcyePBgFi1aBMCaNWvIyCjfaBwwYAB//vknaWlp9vEC58bYokULAObMmWPf/tdrO1+5mqyWJn8LyVk1/85KCCH+rokTJ9KjRw969uzJyJEjeffdd2natCmbNm2iZ8+e9OrVi4ULF/LUU0+RkJDAiBEjCA4O5q677uLtt9++pHO5urry3XffMXnyZIKCgjAYDOUG8lVWo0aNGDx4MN27d+e5554rt3/s2LGYzWa6dOnCjBkzGDhw4GWd50JmzpzJmjVr6N69Oz///DNNmzbFy8urTJlmzZrx2muvMWjQIAYPHkyXLl3s+1577TUmT55Mnz59ygwSHD9+PEuXLiU4OJjNmzeft1xNprSufSPn+zZ30k2fX8cfT49wdChCCCFqqKKiIoxGI05OToSGhvLII48QGRnp6LAui1IqXGvdt6rqq5UD/kBTlHPa0UEIIYSoweLi4rj11luxWq04OzvzzTffODqkGqOWJn8gP43CEguupsoNVBFCCFG/dOjQgd27dzs6jBqpVj7zB2issth2TFr/QgghxKWqtcm/uSmPtftTHB2GEEIIUevU2uTfr4mVTYfkdT8hhBDiUtXS5K9o7ZJPSnYhVmvte1tBCCGEcKTamfwNRnx1FlYN2YUljo5GCCGqXG1f0vdynLnmxMREJk2aVGGZESNGEBYWdsF6PvroI/Lz8+3fK7NE8OW42L+jv7OscXWrncnfaMLHkg5ARr4kfyGEqKwrtaTv39G8eXMWL1582cf/NflXZong6lCTk3/tfNXP4IRHiW2kf0Z+MW3xuMgBQghxmVbOgOS9VVtn0yC47p1KFa3NS/q2atWKxx57DLDNlufp6cnDDz/MhAkTyMjIoKSkhLfeeosJEyaUOTY2NpYbbriBffv2UVBQwLRp04iKiqJz584UFBTYyz3yyCPs2rWLgoICJk2axOuvv84nn3xCYmIiV199NY0bN2bjxo32JYIbN27MBx98wLfffgvA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\n",
      "text/plain": [
       "<Figure size 576x576 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "imnn.train(updates = 1000, at_once = n_s, learning_rate = 1e-3,\n",
    "        constraint_strength = 2.)\n",
    "plot_loss(imnn.history)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "source": [
    "<div style=\"padding-bottom:10cm\"></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Do ABC (or similar)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "iteration = 13, current criterion = 0.09206407659731172, total draws = 43439, ϵ = 0.2352231666445732..\r"
     ]
    }
   ],
   "source": [
    "from IMNN.ABC import ABC \n",
    "from IMNN.ABC import priors\n",
    "\n",
    "prior = priors.TruncatedGaussian(np.array([1.]), np.array([[10.]]), \n",
    "                                 np.array([0.]), np.array([10.]))\n",
    "abc = ABC.ABC(real_data=real_data, prior=prior, sess=imnn.sess, \n",
    "              get_compressor=imnn.get_compressor, \n",
    "              simulator=simulator, \n",
    "              simulator_args={\"input shape\": input_shape},\n",
    "              seed=None)\n",
    "\n",
    "abc.ABC(draws=100000)\n",
    "\n",
    "abc.PMC(draws=1000, posterior=1000, criterion=0.1) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### How did we do (fingers crossed)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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z/1ERETqEC1Kr6kOr7UsJne30z9CnwbQJBKS9KafiLiG0/9NIPeofZcheIX50XBwm8uet2jRIoYOHcquXbvo0MGyT2piYiIdO3akffv2mKaJn58fs2fPpn379oBlQ+PJkydz/Phx6tWrR48ePXj77bdt283Y01tvvcUDDzxQ4Xs///zz9OvXj+uuu87uNdV1GqGqibLPwPEd0OJK+963WQ84ukX7+omIS8g9mkleSobd7peXklHugLZgwQKuvvpqFixYUOR4mzZt2Lp1K9u2bWPs2LHMmDEDgOPHjzNy5EheffVV9uzZw5YtWxg0aFCJnb3t4a233irSwb08CgoKePHFFysUpkraZ1BKphGqmujoFsC0jFDZU/OesGk2pO2DkPb2vbeISCV4hvrTeEK0Xe514qPt5TovIyODNWvWsGLFCgYPHsz//d//lXje2bNnadSoEWDZ82/s2LH06fP7utYRI0YUu2bOnDksXLiQM2fOcOTIEe655x5eeOEFAGbNmmXrXH7//ffz6KOPkpmZyR133EFycjIFBQU899xzHD9+nKNHjzJw4ECCg4NZsWIFP/74Iy+88AI5OTm0adOG2bNn4+/vT6tWrbjzzjtZsmQJTz75JD/88AO33norI0aMYNmyZUyePNnWXfyDDz7A29u72DV33XVXhX7OdZUCVU10ZLPl096bGTfrceH+mxSoRKTO+vrrrxk0aBDt2rUjKCiITZs20aOH5b+PCQkJdO3alXPnzpGVlcX69ZZlEvHx8YwdO7Zc99+wYQPx8fHUq1ePXr16ccstt2AYBrNnz2b9+vWYpklMTAz9+/fnwIEDhIWFsXjxYsCyx19AQACzZs1ixYoVBAcHk5qayvTp01m6dKltm5xZs2bx/PPPAxAUFMTmzZY/N3744QfAst9fXFwcy5Yto127dtx777188MEHPProo8WukfLRlF9NdHQzNGoN9QLte9/gduBV3xKoRETqqAULFthGZe66664i037WKb+EhATbOqaKuv766wkKCsLX15dhw4axZs0a1qxZw9ChQ/Hz88Pf359hw4axevVqoqKiWLJkCVOnTmX16tW2jYwvtm7dOnbu3Enfvn3p2rUrn3zyCYcOHbJ9f+eddxa7Zs+ePbRu3Zp27SyNoceOHcuqVavKvEbKphGqmujIFmgRY//7urlDWFdI1r6LIlI3paen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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_abc(real_data, abc)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div style=\"padding-bottom:10cm\"></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Examples"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "## (and successes!)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## $\\tau$ estimation from Planck E-mode polarisation maps\n",
    "<img style=\"max-width:70%;max-height:70%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/map143_065_noisy.png\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "<table border=\"0\">\n",
    "    <tr style=\"background-color:white;\"><td style=\"width:25%;\">\n",
    "        <img style=\"max-width:100%;max-height:100%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/map143_055_noisy.png\">\n",
    "    </td><td style=\"width:25%;\">\n",
    "        <img style=\"max-width:100%;max-height:100%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/map143_05_noisy.png\">\n",
    "    </td><td style=\"width:25%;\">\n",
    "        <img style=\"max-width:100%;max-height:100%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/map143_06_noisy.png\">\n",
    "    </td><td style=\"width:25%;\">\n",
    "        <img style=\"max-width:100%;max-height:100%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/map143_difference.png\">\n",
    "    </td></tr>\n",
    "</table>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "notes"
    }
   },
   "source": [
    "- 2 E-mode polarisation maps (100GHz and 143GHz)<br>\n",
    "- 3000ish pixels in the maps\n",
    "- 500 CMB realisations ($\\tau = 0.055$), 300 noise realisations<br>\n",
    "- numerical derivatives, 100 CMB realisations<br>\n",
    "- real data created with $\\tau = 0.065$<br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Use spherical convolutional neural network\n",
    "\n",
    "<img style=\"max-width:80%;max-height:80%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/spherical_convolutional_network.svg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## We obtain a convincing posterior\n",
    "\n",
    "<img style=\"max-width:80%;max-height:80%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/tau_constraint.png\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Inferring the ionisation rate from quasar absorption spectra\n",
    "\n",
    "<img style=\"max-width:70%;max-height:70%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/flux_train.png\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "notes"
    }
   },
   "source": [
    "Thermal state of intergalactic medium at the end of reionisation probed by Lyman-\\alpha forest. Tells us about the optical depth to reionisation.\n",
    "\n",
    "We compress the fluxes into percentiles, and use 5000 sims + derivatives."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Use fully connected neural network\n",
    "\n",
    "<img style=\"max-width:60%;max-height:60%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/neural_network_IMNN.svg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Couple it with DELFI to get another convincing posterior!\n",
    "\n",
    "<img style=\"max-width:80%;max-height:80%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/imnn_gamma.png\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Multi-dimensional cosmological parameter inference from tomographic cosmic sheap maps of a Euclid-like survey\n",
    "\n",
    "<img style=\"max-width:80%;max-height:80%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/shear_data.png\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "notes"
    }
   },
   "source": [
    "Cosmic shear is very informative about cosmology - difficult to build a likelihood because of intrinsic alignments, photo-z systematics, non-linear physics, etc.\n",
    "\n",
    "Coherent distortion of light from distant galaxies due to graviational lensing which can be measured as a shear field.\n",
    "\n",
    "2000 realisations + 100 per parameter for derivatives\n",
    "\n",
    "MAF"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "## Summarise the maps via the power spectrum and compress that with the IMNN\n",
    "\n",
    "<img style=\"max-width:100%;max-height:80%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/2_stage_non_linear_compression.svg\"> "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "### Use DELFI for inference\n",
    "\n",
    "<img style=\"max-width:50%;max-height:50%;display:block;height:auto;margin:auto;float:none!important;\" src=\"../figures/IMNN_Euclid_shear.png\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Summary"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "- Data must be compressed for us to effectively do ABC"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- Compression can be performed many different ways (although are most ways are lossy)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- Score compression provides optimal summaries (which can be lossless if the likelihood is known)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- IMNN enables us to transform data into Gaussian summaries which maximise all possible information"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- It's proving successful and we want to apply it to everything we can!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Download IMNN now!\n",
    "\n",
    "```python\n",
    "pip install IMNN\n",
    "```\n",
    "\n",
    "<a href=\"https://github.com/tomcharnock/IMNN.git\">github.com/tomcharnock/IMNN</a>"
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Slideshow",
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
